package com.xuexi.leetcode;

/**
 * @Author: 梁二东
 * @Date: 2024/11/17 10:43
 * @Description:给你一个整数 x ，如果 x 是一个回文整数，返回 true ；否则，返回 false 。
 * <p>
 * 回文数
 * 是指正序（从左向右）和倒序（从右向左）读都是一样的整数。
 * <p>
 * 例如，121 是回文，而 123 不是。
 **/
public class LeetCodeisPalindrome {

    public static void main(String[] args) {
        LeetCodeisPalindrome leet = new LeetCodeisPalindrome();
        System.out.println(leet.isPalindrome(123432));
    }

    public boolean isPalindrome(int x) {
        if (x < 0) {
            return false;
        }
        String sx = String.valueOf(x);
        char[] chars = sx.toCharArray();
        int left = chars.length % 2 == 0 ? chars.length / 2 - 1 : chars.length / 2;
        int right = chars.length % 2 == 0 ? chars.length / 2 : chars.length / 2;
        return expandAroundCenter(sx, left, right);
    }

    public boolean expandAroundCenter(String s, int left, int right) {
        while (left >= 0 && right <= s.length() && s.charAt(left) == s.charAt(right)) {
            left--;
            right++;
        }
        return right - left - 1 == s.length();
    }
}
